package com.ruoyi.aiexperiments.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 实验训练记录对象 experiment_training
 * 
 * @author czj
 * @date 2025-01-06
 */
public class ExperimentTraining extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 训练ID */
    private Long trainingId;

    /** 实验ID */
    @Excel(name = "实验ID")
    private Long experimentId;

    /** 模型名称 */
    @Excel(name = "模型名称")
    private String modelName;

    /** 算法ID */
    @Excel(name = "算法ID")
    private Long algorithmId;

    /** 训练集ID */
    @Excel(name = "训练集ID")
    private Long trainingDatasetId;

    /** 验证集ID */
    @Excel(name = "验证集ID")
    private Long validationDatasetId;

    /** 训练状态 */
    @Excel(name = "训练状态")
    private String status;

    /** 训练开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "训练开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date trainingStartTime;

    /** 训练结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "训练结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date trainingEndTime;

    /** 训练结果 */
    @Excel(name = "训练结果")
    private String trainingResult;

    /** 审核状态 */
    @Excel(name = "审核状态")
    private String reviewStatus;

    /** 审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewDate;

    /** 审核人 */
    @Excel(name = "审核人")
    private String reviewerId;

    /** 审核意见 */
    @Excel(name = "审核意见")
    private String comments;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updatedBy;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 删除人 */
    @Excel(name = "删除人")
    private String deletedBy;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deletedAt;

    /** 逻辑删除标记 */
    @Excel(name = "逻辑删除标记")
    private Integer deleteFlag;

    /** 版本号 */
    @Excel(name = "版本号")
    private Long version;

    public void setTrainingId(Long trainingId) 
    {
        this.trainingId = trainingId;
    }

    public Long getTrainingId() 
    {
        return trainingId;
    }
    public void setExperimentId(Long experimentId) 
    {
        this.experimentId = experimentId;
    }

    public Long getExperimentId() 
    {
        return experimentId;
    }
    public void setModelName(String modelName) 
    {
        this.modelName = modelName;
    }

    public String getModelName() 
    {
        return modelName;
    }
    public void setAlgorithmId(Long algorithmId) 
    {
        this.algorithmId = algorithmId;
    }

    public Long getAlgorithmId() 
    {
        return algorithmId;
    }
    public void setTrainingDatasetId(Long trainingDatasetId) 
    {
        this.trainingDatasetId = trainingDatasetId;
    }

    public Long getTrainingDatasetId() 
    {
        return trainingDatasetId;
    }
    public void setValidationDatasetId(Long validationDatasetId) 
    {
        this.validationDatasetId = validationDatasetId;
    }

    public Long getValidationDatasetId() 
    {
        return validationDatasetId;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setTrainingStartTime(Date trainingStartTime) 
    {
        this.trainingStartTime = trainingStartTime;
    }

    public Date getTrainingStartTime() 
    {
        return trainingStartTime;
    }
    public void setTrainingEndTime(Date trainingEndTime) 
    {
        this.trainingEndTime = trainingEndTime;
    }

    public Date getTrainingEndTime() 
    {
        return trainingEndTime;
    }
    public void setTrainingResult(String trainingResult) 
    {
        this.trainingResult = trainingResult;
    }

    public String getTrainingResult() 
    {
        return trainingResult;
    }
    public void setReviewStatus(String reviewStatus) 
    {
        this.reviewStatus = reviewStatus;
    }

    public String getReviewStatus() 
    {
        return reviewStatus;
    }
    public void setReviewDate(Date reviewDate) 
    {
        this.reviewDate = reviewDate;
    }

    public Date getReviewDate() 
    {
        return reviewDate;
    }
    public void setReviewerId(String reviewerId) 
    {
        this.reviewerId = reviewerId;
    }

    public String getReviewerId() 
    {
        return reviewerId;
    }
    public void setComments(String comments) 
    {
        this.comments = comments;
    }

    public String getComments() 
    {
        return comments;
    }
    public void setCreatedBy(String createdBy) 
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() 
    {
        return createdBy;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setUpdatedBy(String updatedBy) 
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() 
    {
        return updatedBy;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }
    public void setDeletedBy(String deletedBy) 
    {
        this.deletedBy = deletedBy;
    }

    public String getDeletedBy() 
    {
        return deletedBy;
    }
    public void setDeletedAt(Date deletedAt) 
    {
        this.deletedAt = deletedAt;
    }

    public Date getDeletedAt() 
    {
        return deletedAt;
    }
    public void setDeleteFlag(Integer deleteFlag) 
    {
        this.deleteFlag = deleteFlag;
    }

    public Integer getDeleteFlag() 
    {
        return deleteFlag;
    }
    public void setVersion(Long version) 
    {
        this.version = version;
    }

    public Long getVersion() 
    {
        return version;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("trainingId", getTrainingId())
            .append("experimentId", getExperimentId())
            .append("modelName", getModelName())
            .append("algorithmId", getAlgorithmId())
            .append("trainingDatasetId", getTrainingDatasetId())
            .append("validationDatasetId", getValidationDatasetId())
            .append("status", getStatus())
            .append("trainingStartTime", getTrainingStartTime())
            .append("trainingEndTime", getTrainingEndTime())
            .append("trainingResult", getTrainingResult())
            .append("reviewStatus", getReviewStatus())
            .append("reviewDate", getReviewDate())
            .append("reviewerId", getReviewerId())
            .append("comments", getComments())
            .append("createdBy", getCreatedBy())
            .append("createdAt", getCreatedAt())
            .append("updatedBy", getUpdatedBy())
            .append("updatedAt", getUpdatedAt())
            .append("deletedBy", getDeletedBy())
            .append("deletedAt", getDeletedAt())
            .append("deleteFlag", getDeleteFlag())
            .append("version", getVersion())
            .toString();
    }
}
